A broad class of database management systems may be characterized by their lack of strict conformance to the relational database model. Such systems typically do not support structured query language (“SQL”) queries. They also tend to employ a wide range of alternative structures for storing data, eschewing the strictly-enforced table and column format employed by traditional relational database management systems. For example, some non-SQL based (“NoSQL”) systems employ key value pairings, in which a key value is associated with one or more associated data values. In general, no particular order, type or meaning is imposed on the data values associated with any given key.
Although the database management system does not impose a strict schema, various operations could be performed on the data if its ontology could be understood or approximated to a reasonable degree of accuracy. Various secondary indexes could, for example, be constructed over semantically similar data. To employ such techniques, it would be advantageous to have automated methods of computing the ontology of data maintained by the database management system. Ideally, such methods would be computationally efficient and reasonably accurate, even for database management systems that maintain a large corpus of preexisting data.